package com.esd.db.service;


import java.util.List;
import java.util.Map;

import com.esd.db.model.worker;

public interface WorkerService {

    int deleteByPrimaryKey(Integer workerId);

    int insert(worker record);

    int insertSelective(worker record);

    worker selectByPrimaryKey(Integer workerId);
    
    worker getWorkerByUserId(Integer userid);
    
    int getWorkerIdByUserId(Integer userid);
    
    int getCountWorkerIdByUserId(Integer userId);

    int updateByPrimaryKeySelective(worker record);

    int updateByPrimaryKeyWithBLOBs(worker record);

    int updateByPrimaryKey(worker record);
    
    worker getWorkerByWorkerPhone(String workerPhone);
    
    worker getWorkerByWorkerIdCard(String workerIdCard);
    
    worker getWorkerByWorkerDisabilityCard(String workerDisabilityCard);
    
    String getWorkerRealNameByWorkerId(int workerId);
    
    String getDownCOuntByWorkerId(int workerId);  
    
    /**
     * manager页面查询工作者用
     * @param name  查询条件 工作者用户名或者工作者真实姓名
     * @param page  页数
     * @param row   行数
     * @param alipayEnabled 工作者是否启用支付宝  9:全部  1:启用 0:未启用
     * @return
     */
    List<Map<String,Object>> getLikeRealName(String name,int page,int row,int alipayEnabled);
    
    List<worker> getUIdAndWIdByVersionAndWGC (int version,String wgc);
    
    int getCountLikeRealname(String name, int alipayEnabled);
    
    int getWorkerCount();
    
    List<Map<String,Object>> getWorkerLvl(String userNameCondition,int userLvl,int page,int row);

    int getWorkerLvlCount(String userNameCondition,int userLvl);
    
    List<worker> getWorkerIdByUpdateId(int workerId);
    
    /**
     * 检查下载是否被卡主  一般如果下载超过两个小时  还显示为正在下载认为是被卡主
     * @param workerId  工作者workerId
     * @return   0 被卡住  1 没有被卡住
     */
    int checkDownloadByWorkerId(int workerId);

    /**
     * 根据workerId重置下载任务 
     * 1 需要更新task表的四个字段worker_id   task_download_time   update_id  update_method 为null
     * 2 更新worker表的downing字段为0
     * @param workerId 
     */
	void resetDownloadByWorkerId(int workerId);
	
	int updateByWgc(worker worker);
	
	/**
	 * 修改工作者是否启用支付宝状态
	 * @param workerId
	 * @return
	 */
	int changeAlipayStatusByWorkerId(int workerId,int alipayStatus);

	int insertSelectiveReturnWorkerId(worker worker);
	
	/**
	 * 修改工作者真是姓名
	 * @param newRealName
	 * @param workerId
	 * @return
	 */
	int editRealNameByWorkerId(String newRealName, int workerId);
	
	/**
	 * 获得所有的工作者id和工作组代码的map  工作者id是key 工作组代码是value
	 * @return
	 */
	List<Map<String, Object>> getAllWorkerIdAndGroupCodeMap();
	
}